package com.erp.erp_entitys.InspectCargo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Objects;

/**
 * 验货商检-产品表
 */
@ApiModel(value = "验货商检-产品实体类")
public class InspectCargoProductEntity {
    @ApiModelProperty(value = "id")
    private Integer id;

    /**
     * 产品编码
     */
    @ApiModelProperty(value = "产品编码")
    private String productNo;

    /**
     * 规格编码
     */
    @ApiModelProperty(value = "规格编码")
    private String specNo;

    /**
     * 规格说明
     */
    @ApiModelProperty(value = "规格说明")
    private String normExplain;

    /**
     * 中文名称
     */
    @ApiModelProperty(value = "中文名称")
    private String chineseName;

    /**
     * 英文名称
     */
    @ApiModelProperty(value = "英文名称")
    private String englishName;

    /**
     * 中文描述
     */
    @ApiModelProperty(value = "中文描述")
    private String chineseDesc;

    /**
     * 英文描述
     */
    @ApiModelProperty(value = "英文描述")
    private String englishDesc;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String unit;

    /**
     * 颜色
     */
    @ApiModelProperty(value = "颜色")
    private String colour;

    /**
     * 单价
     */
    @ApiModelProperty(value = "单价")
    private BigDecimal price;

    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private BigDecimal amount;

    /**
     * 金额小计
     */
    @ApiModelProperty(value = "金额小计")
    private BigDecimal priceSubtotal;

    /**
     * 供应商
     */
    @ApiModelProperty(value = "供应商")
    private String supplier;

    /**
     * 成本单价
     */
    @ApiModelProperty(value = "成本单价")
    private BigDecimal unitCost;

    /**
     * 销售合同号
     */
    @ApiModelProperty(value = "销售合同号")
    private String salesContractNo;

    /**
     * 采购单号
     */
    @ApiModelProperty(value = "采购单号")
    private String purchaseOrderNo;

    /**
     * 图片
     */
    @ApiModelProperty(value = "图片")
    private String productImg;

    /**
     * 产品类型
     */
    @ApiModelProperty(value = "产品类型")
    private String productType;

    /**
     * 剩余数量
     */
    @ApiModelProperty(value = "剩余数量")
    private Integer lastAmount;
    /**
     * 供应商id
     */
    @ApiModelProperty(value = "供应商id")
    private String supplierId;

    /**
     * 供应商名称
     */
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    /**
     * 出运计划id
     */
    @ApiModelProperty(value = "出运计划id")
    private String carryPlanId;

    /**
     * 出运计划单号
     */
    @ApiModelProperty(value = "出运计划单号")
    private String loadPlanNo;

    /**
     * 业务员编码
     */
    @ApiModelProperty(value = "业务员编码")
    private String inspectorCode;

    /**
     * 业务员名称
     */
    @ApiModelProperty(value = "业务员名称")
    private String inspectorName;

    /**
     * 采购单号id
     */
    @ApiModelProperty(value = "采购单号id")
    private String stockId;

    /**
     * 验货id外键
     */
    @ApiModelProperty(value = "验货id外键")
    private Integer inspectCargoId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public String getSpecNo() {
        return specNo;
    }

    public void setSpecNo(String specNo) {
        this.specNo = specNo;
    }

    public String getNormExplain() {
        return normExplain;
    }

    public void setNormExplain(String normExplain) {
        this.normExplain = normExplain;
    }

    public String getChineseName() {
        return chineseName;
    }

    public void setChineseName(String chineseName) {
        this.chineseName = chineseName;
    }

    public String getEnglishName() {
        return englishName;
    }

    public void setEnglishName(String englishName) {
        this.englishName = englishName;
    }

    public String getChineseDesc() {
        return chineseDesc;
    }

    public void setChineseDesc(String chineseDesc) {
        this.chineseDesc = chineseDesc;
    }

    public String getEnglishDesc() {
        return englishDesc;
    }

    public void setEnglishDesc(String englishDesc) {
        this.englishDesc = englishDesc;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getColour() {
        return colour;
    }

    public void setColour(String colour) {
        this.colour = colour;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getPriceSubtotal() {
        return priceSubtotal;
    }

    public void setPriceSubtotal(BigDecimal priceSubtotal) {
        this.priceSubtotal = priceSubtotal;
    }

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String supplier) {
        this.supplier = supplier;
    }

    public BigDecimal getUnitCost() {
        return unitCost;
    }

    public void setUnitCost(BigDecimal unitCost) {
        this.unitCost = unitCost;
    }

    public String getSalesContractNo() {
        return salesContractNo;
    }

    public void setSalesContractNo(String salesContractNo) {
        this.salesContractNo = salesContractNo;
    }

    public String getPurchaseOrderNo() {
        return purchaseOrderNo;
    }

    public void setPurchaseOrderNo(String purchaseOrderNo) {
        this.purchaseOrderNo = purchaseOrderNo;
    }

    public String getProductImg() {
        return productImg;
    }

    public void setProductImg(String productImg) {
        this.productImg = productImg;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public Integer getLastAmount() {
        return lastAmount;
    }

    public void setLastAmount(Integer lastAmount) {
        this.lastAmount = lastAmount;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getCarryPlanId() {
        return carryPlanId;
    }

    public void setCarryPlanId(String carryPlanId) {
        this.carryPlanId = carryPlanId;
    }

    public String getLoadPlanNo() {
        return loadPlanNo;
    }

    public void setLoadPlanNo(String loadPlanNo) {
        this.loadPlanNo = loadPlanNo;
    }

    public String getInspectorCode() {
        return inspectorCode;
    }

    public void setInspectorCode(String inspectorCode) {
        this.inspectorCode = inspectorCode;
    }

    public String getInspectorName() {
        return inspectorName;
    }

    public void setInspectorName(String inspectorName) {
        this.inspectorName = inspectorName;
    }

    public Integer getInspectCargoId() {
        return inspectCargoId;
    }

    public void setInspectCargoId(Integer inspectCargoId) {
        this.inspectCargoId = inspectCargoId;
    }

    public String getStockId() {
        return stockId;
    }

    public void setStockId(String stockId) {
        this.stockId = stockId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        InspectCargoProductEntity that = (InspectCargoProductEntity) o;
        return id.equals(that.id) &&
                Objects.equals(productNo, that.productNo) &&
                Objects.equals(specNo, that.specNo) &&
                Objects.equals(normExplain, that.normExplain) &&
                Objects.equals(chineseName, that.chineseName) &&
                Objects.equals(englishName, that.englishName) &&
                Objects.equals(chineseDesc, that.chineseDesc) &&
                Objects.equals(englishDesc, that.englishDesc) &&
                Objects.equals(unit, that.unit) &&
                Objects.equals(colour, that.colour) &&
                Objects.equals(price, that.price) &&
                Objects.equals(amount, that.amount) &&
                Objects.equals(priceSubtotal, that.priceSubtotal) &&
                Objects.equals(supplier, that.supplier) &&
                Objects.equals(unitCost, that.unitCost) &&
                Objects.equals(salesContractNo, that.salesContractNo) &&
                Objects.equals(purchaseOrderNo, that.purchaseOrderNo) &&
                Objects.equals(productImg, that.productImg) &&
                Objects.equals(productType, that.productType) &&
                Objects.equals(lastAmount, that.lastAmount) &&
                Objects.equals(supplierId, that.supplierId) &&
                Objects.equals(supplierName, that.supplierName) &&
                Objects.equals(carryPlanId, that.carryPlanId) &&
                Objects.equals(loadPlanNo, that.loadPlanNo) &&
                Objects.equals(inspectorCode, that.inspectorCode) &&
                Objects.equals(inspectorName, that.inspectorName) &&
                Objects.equals(inspectCargoId, that.inspectCargoId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, productNo, specNo, normExplain, chineseName, englishName, chineseDesc, englishDesc, unit, colour, price, amount, priceSubtotal, supplier, unitCost, salesContractNo, purchaseOrderNo, productImg, productType, lastAmount, supplierId, supplierName, carryPlanId, loadPlanNo, inspectorCode, inspectorName, inspectCargoId);
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("{");
        sb.append(" \"id\":").append(id);
        sb.append(", \"productNo\":\"").append(productNo).append('\"');
        sb.append(", \"specNo\":\"").append(specNo).append('\"');
        sb.append(", \"normExplain\":\"").append(normExplain).append('\"');
        sb.append(", \"chineseName\":\"").append(chineseName).append('\"');
        sb.append(", \"englishName\":\"").append(englishName).append('\"');
        sb.append(", \"chineseDesc\":\"").append(chineseDesc).append('\"');
        sb.append(", \"englishDesc\":\"").append(englishDesc).append('\"');
        sb.append(", \"unit\":\"").append(unit).append('\"');
        sb.append(", \"colour\":\"").append(colour).append('\"');
        sb.append(", \"price\":").append(price);
        sb.append(", \"amount\":").append(amount);
        sb.append(", \"priceSubtotal\":").append(priceSubtotal);
        sb.append(", \"supplier\":\"").append(supplier).append('\"');
        sb.append(", \"unitCost\":").append(unitCost);
        sb.append(", \"salesContractNo\":\"").append(salesContractNo).append('\"');
        sb.append(", \"purchaseOrderNo\":\"").append(purchaseOrderNo).append('\"');
        sb.append(", \"productImg\":\"").append(productImg).append('\"');
        sb.append(", \"productType\":\"").append(productType).append('\"');
        sb.append(", \"lastAmount\":").append(lastAmount);
        sb.append(", \"supplierId\":\"").append(supplierId).append('\"');
        sb.append(", \"supplierName\":\"").append(supplierName).append('\"');
        sb.append(", \"carryPlanId\":\"").append(carryPlanId).append('\"');
        sb.append(", \"loadPlanNo\":\"").append(loadPlanNo).append('\"');
        sb.append(", \"inspectorCode\":\"").append(inspectorCode).append('\"');
        sb.append(", \"inspectorName\":\"").append(inspectorName).append('\"');
        sb.append(", \"stockId\":\"").append(stockId).append('\"');
        sb.append(", \"inspectCargoId\":").append(inspectCargoId);
        sb.append('}');
        return sb.toString();
    }
}